/*
    日志等级模块
    1、实现枚举日志等级类
    2、实现对应日志等级转换成字符串
*/

#ifndef __M_LEVEL_H__
#define __M_LEVEL_H__

namespace Hxy_Log
{
    class LogLevel
    {
        public:
        enum class value
        {
            UNKNOW = 0, //未知等级
            DEBUG ,  //进⾏debug时候打印⽇志的等级
            INFO  ,  //打印⼀些⽤⼾提⽰信息
            WARN  ,  //打印警告信息
            ERROR ,  //打印错误信息
            FATAL ,  //打印致命信息- 导致程序崩溃的信息
            OFF     //关闭所有⽇志输出
        };

        //需要通过域名::类名::调用函数需要变成静态 不需要进行定义对象
        static const char* ToString(LogLevel::value v)
        {
            switch (v)
            {
                case LogLevel::value::DEBUG : return "DEBUG" ;
                case LogLevel::value::INFO : return "INFO" ;
                case LogLevel::value::WARN : return "WARN" ;
                case LogLevel::value::ERROR : return "ERROR" ;
                case LogLevel::value::FATAL : return "FATAL" ;
                case LogLevel::value::OFF : return "OFF" ;
            }
            return "UNKNOW";
        }
    };
}
#endif